<?php
/**
 * @APP@
 *
 * PHP versions 5
 *
 * @category   BEAR
 * @package    App
 * @subpackage App_Form
 * @author     $Author: anonymous $ <anonymous@example.com>
 * @version    SVN: Release: $Id:$
 */
/**
 * ユーザーフォーム
 *
 * <pre>
 * ユーザー、ユーザープロフィールに関するフォームです
 * </pre>
 *
 * @package    App
 * @subpackage App_Form
 * @author     $useror: anonymous $
 * @version    SVN: Release: $Id:$
 */
class App_Form_User_Preview extends BEAR_Base
{
    /**
     * エレメントテンプレート
     *
     * @var string
     */
    static $_elementTemplate = "\n\t\t<li><label class=\"element\"><!-- BEGIN required --><span class=\"required\">*</span><!-- END required -->{label}</label><div class=\"element<!-- BEGIN error -->_error<!-- END error -->\">{element}<!-- BEGIN error --><span class=\"error\">!</span><!-- END error --><!-- BEGIN label_3 -->{label_3}<!-- END label_3 --><!-- BEGIN label_2 --><!-- END label_2 --></div></li>";

    /**
     * インジェクト
     *
     */
    public function onInject()
    {
        $callback = array('App_Form_User_Preview','onRender');
        $this->_form = array('formName' => 'form', 'callback'=>$callback, 'errors'=>'errors');
    }

    /**
     * ユーザー作成プレビュー
     *
     * <pre>
     * パスワードをhiddenに入れれるようsetPersistantFreeze()を使っています。
     * エレメントのテンプレートを変更して確認画面にラベル2（入力時の注意）を出さないようにしています
     * </pre>
     *
     * @return  void
     */
    public function build()
    {
        $form = BEAR::dependency('BEAR_Form', $this->_form);
        $element = $form->getElement('password');
        $element->setPersistantFreeze(true);
        $element = $form->getElement('_repeatPass');
        $element->setPersistantFreeze(true);
        $form->freeze();
        BEAR_Form::setSubmitHeader($form, 'mode', 'action');
    }

    /**
     * カスタムテンプレート(preview時）
     *
     * preview画面ではラベル2{label_2}を取り除いています
     *
     * @param object $render
     *
     * @return void
     */
    public static function onRenderPreview($render)
    {
        $render->setElementTemplate(self::$_elementTemplate);
    }
}